﻿
namespace ConsoleApp6
{
    //扩展方法
    /*
     * 扩展方法（Extension Methods）的概念，
     * 允许你向现有的类型添加新的方法，而无需修改原始类型的定义。
     */
    //扩展方法必须在非泛型静态类中定义

    internal class Program
    {
       
        static void Main(string[] args)
        {
            //例一
            string text = "hello world!";
            string capitalizedText = text.Capitalize();
            Console.WriteLine(capitalizedText);

            //例二
            person person  = new person();
            person.name();
            person.age();

        }



    }


    
    //注:扩展方法必须定义在静态类中，并且这个类必须是一个非泛型静态类
    // 例一
    public static class StringExtensions
    {
        public static string Capitalize(this string input)
        {
            //判断是否为空
            if (string.IsNullOrEmpty(input))
                return input;

            return char.ToUpper(input[0]) + input.Substring(1); // 将字符串从索引号为1开始截取，一直到字符串末尾
        }
    }

    // 例二
    //原类不能是静态类
    public  class person
    {
        public static void name()
        {
            Console.WriteLine("尚守来");
        }
    }
    //扩展方法
    public static class person2 
    {
        public static void age(this person person) 
        {
            
            Console.WriteLine("23岁");
        }
    }

}